Skip to content
This repository was archived by the owner on May 29, 2026. It is now read-only.

feat(quality): add journeydoc-capture job (Playwright docs-screenshots)#107

Open
WilcoLouwerse wants to merge 1 commit into
mainfrom
feature/quality-workflow-journeydoc-capture
Open

feat(quality): add journeydoc-capture job (Playwright docs-screenshots)#107
WilcoLouwerse wants to merge 1 commit into
mainfrom
feature/quality-workflow-journeydoc-capture

Conversation

@WilcoLouwerse

Copy link
Copy Markdown
Contributor

Summary

Per hydra#279 stap 14 — fleet-brede ondersteuning voor de journeydoc-pattern uit ADR-030 in de centrale quality workflow. Apps die de journeydoc-scaffold gebruiken (7 op dit moment: mydash, opencatalogi, openregister, openconnector, doriath, docudesk, pipelinq) kunnen nu nachtelijke screenshot-refresh inschakelen zonder eigen Nextcloud/Playwright-infra te schrijven.

Wat dit doet

Nieuwe journeydoc-capture job in Stage 2 van quality.yml:

  • Spint Nextcloud + Postgres + Playwright + chromium op (hergebruikt zelfde setup-pattern als bestaande playwright job)
  • Draait expliciet npx playwright test --project docs-capture — alleen tests/e2e/docs-screenshots.spec.ts, niet de regression
  • Vergelijkt docs/static/screenshots/tutorials/ met HEAD
  • Committeert + pusht alleen wijzigingen terug naar de caller-branch (zelfde graceful-push pattern als features-extract / update-baseline, non-blocking op protected branches per Allow CI bot to push auto-generated files (.coverage-baseline, SBOM) to ruleset-protected branches #61)
  • Triggert optioneel een docs-deploy workflow via gh workflow run

Geen PATs nodig

Conform Conduction post-"github has been hacked" beleid: alleen GITHUB_TOKEN (contents:write + actions:write op job-niveau).

Nieuwe inputs

Input Default Doel
enable-journeydoc-capture false Gate — zet op true om de job te activeren
journeydoc-output-path docs/static/screenshots/tutorials Pad dat de commit-stap monitort
journeydoc-deploy-workflow "" (leeg) Optioneel workflow_dispatch-target (bv. documentation.yml) na succesvolle commit

Recommended caller-pattern

Per-app aparte workflow (niet in de standaard code-quality.yml mengen — te duur voor elke PR):

# <app>/.github/workflows/docs-capture.yml
on:
  schedule:
    - cron: \"27 3 * * *\"   # nightly
  workflow_dispatch:
jobs:
  capture:
    uses: ConductionNL/.github/.github/workflows/quality.yml@main
    with:
      app-name: <slug>
      enable-journeydoc-capture: true
      enable-frontend: false
      enable-license-check: false
      enable-sbom: false
      enable-features-extract: false
      journeydoc-deploy-workflow: documentation.yml

Validatie

  • YAML parses clean (`python yaml.safe_load`)
  • 14 jobs totaal (was 13, `journeydoc-capture` toegevoegd)
  • Spec-existence check ingebouwd: faalt vroeg als `tests/e2e/docs-screenshots.spec.ts` of `docs-capture` Playwright-project ontbreekt

Test plan

  • Na merge: companion PR op opencatalogi met de `docs-capture.yml` workflow openen — dat is de proof-of-concept
  • Eerste nightly run waarnemen — verwacht 2-3 iteraties (per hydra#279 plan: NC-setup-races, firstrunwizard, selector-flakiness)
  • Daarna uitrol naar de andere 6 apps met journeydoc-scaffold

Follow-up (out of scope voor deze PR)

  • report job's Quality Report tabel uitbreiden met een rij voor journeydoc-capture (cosmetic; ontbreekt nu)
  • Per-app docs-capture.yml companion PRs voor mydash/openregister/openconnector/doriath/docudesk/pipelinq

Refs hydra#279, ADR-030.

🤖 Generated with Claude Code

Per hydra#279, stap 14 — fleet-brede ondersteuning voor de journeydoc-
pattern uit ADR-030 in de centrale quality workflow. Apps die de
journeydoc-scaffold gebruiken kunnen nu nightly screenshots laten
verversen zonder eigen workflow-code te schrijven.

### Wat dit doet

Nieuwe `journeydoc-capture` job in Stage 2 van de reusable quality
workflow:

- Spint Nextcloud + Postgres + Playwright + chromium op (zelfde pattern
  als de bestaande `playwright` job)
- Draait expliciet `npx playwright test --project docs-capture` — dus
  alleen `tests/e2e/docs-screenshots.spec.ts`, niet de regression
- Vergelijkt `docs/static/screenshots/tutorials/` met HEAD
- Committeert + pusht alleen wijzigingen terug naar de caller-branch
  (zelfde graceful-push pattern als features-extract/update-baseline,
  non-blocking op protected branches per #61)
- Triggert optioneel een docs-deploy workflow via `gh workflow run`

### Geen PATs nodig

Conform Conduction post-"github has been hacked" beleid: alleen
`GITHUB_TOKEN` (contents:write + actions:write op job-niveau).

### Drie nieuwe inputs

- `enable-journeydoc-capture` (bool, default false) — gate
- `journeydoc-output-path` (string, default
  `docs/static/screenshots/tutorials`) — wat de commit-stap monitort
- `journeydoc-deploy-workflow` (string, default empty) — optioneel
  workflow_dispatch-target na succesvolle commit

### Aanbevolen invocation-pattern

Per-app een aparte `.github/workflows/docs-capture.yml`:

  on:
    schedule:
      - cron: "27 3 * * *"   # nightly
    workflow_dispatch:
  jobs:
    capture:
      uses: ConductionNL/.github/.github/workflows/quality.yml@main
      with:
        app-name: <slug>
        enable-journeydoc-capture: true
        enable-frontend: false
        enable-license-check: false
        enable-sbom: false
        enable-features-extract: false
        journeydoc-deploy-workflow: documentation.yml

Niet in code-quality.yml inschakelen (te duur voor elke PR).

### Validation

YAML parses clean (python yaml.safe_load). 14 jobs totaal.

Follow-up:
- report-job's Quality Report tabel uitbreiden met een rij voor
  journeydoc-capture (cosmetic, ontbreekt nu)
- Per-app `docs-capture.yml` workflow toevoegen aan de 7 apps die de
  journeydoc-scaffold al hebben (mydash, opencatalogi, openregister,
  openconnector, doriath, docudesk, pipelinq) — apart issue/PR per app

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant